#ifndef __DIFFTEST_H__
#define __DIFFTEST_H__

#include "types.h"

struct DifftestContext {
    word_t* gpr;
    word_t* pc;
    word_t* csr;
    DifftestContext(word_t* pc_ptr, word_t* gpr_ptr, word_t* csr_ptr) {
        this->gpr = gpr_ptr;
        this->pc = pc_ptr;
        this->csr = csr_ptr;
    }
    DifftestContext() {
        this->pc = new word_t;
        this->gpr = new word_t[32];
        this->csr = new word_t[4096];
    }
    ~DifftestContext() {
        delete this->pc;
        delete[] this->gpr;
        delete[] this->csr;
    }
};

enum { DIFFTEST_TO_DUT, DIFFTEST_TO_REF };

#endif
